#ifndef CINITGL_H
#define CINITGL_H
#include "math_3d.h"
#include "CShaders.h"

class CInitGL: public CShaders
{
    protected:
        static CInitGL *instance;
    public:
        CInitGL(){};

        static void setInstance(CInitGL * framework);
        static void StartInitGL(int argc, char** argv);
        static void InitGlutCallbacks();
        static void CreateVertexBuffer();
        static void RenderScene();
        static void CreateIndexBuffer();

        static void SpecialKeyboardCB(int Key, int x, int y);
        static void KeyboardCB(unsigned char Key, int x, int y);
        static void PassiveMouseCB(int x, int y);

static GLuint VBO;
static GLuint IBO;
static float Scale;
static GLuint gScaleLocation;
static GLuint gWVPLocation;


static float xrot;
static float yrot;
static float xspeed;
static float yspeed;

static float walkbias;
static float walkbiasAngle;

const float piover180;
float heading, xpos, zpos;

static float camx, camy, camz;
static float therotate;
static float z;
};

#endif
